Merge "mediawiki.api: Support assert parameter in getToken and postWithToken"
authorjenkins-bot <jenkins-bot@gerrit.wikimedia.org>
Tue, 23 Sep 2014 20:52:53 +0000 (20:52 +0000)
committerGerrit Code Review <gerrit@wikimedia.org>
Tue, 23 Sep 2014 20:52:53 +0000 (20:52 +0000)
1  2 
resources/src/mediawiki.api/mediawiki.api.js

  
                        // Return the Promise
                        return apiDeferred.promise( { abort: xhr.abort } ).fail( function ( code, details ) {
 -                              if ( code !== 'abort' ) {
 +                              if ( !( code === 'http' && details && details.textStatus === 'abort' ) ) {
                                        mw.log( 'mw.Api error: ', code, details );
                                }
                        } );
                                ajaxOptions = undefined;
                        }
  
-                       return api.getToken( tokenType ).then( function ( token ) {
+                       return api.getToken( tokenType, params.assert ).then( function ( token ) {
                                params.token = token;
                                return api.post( params, ajaxOptions ).then(
                                        // If no error, return to caller as-is
                                                                params.token = undefined;
  
                                                        // Try again, once
-                                                       return api.getToken( tokenType ).then( function ( token ) {
+                                                       return api.getToken( tokenType, params.assert ).then( function ( token ) {
                                                                params.token = token;
                                                                return api.post( params, ajaxOptions );
                                                        } );
                /**
                 * Get a token for a certain action from the API.
                 *
+                * The assert parameter is only for internal use by postWithToken.
+                *
                 * @param {string} type Token type
                 * @return {jQuery.Promise}
                 * @return {Function} return.done
                 * @return {string} return.done.token Received token.
                 * @since 1.22
                 */
-               getToken: function ( type ) {
+               getToken: function ( type, assert ) {
                        var apiPromise,
                                promiseGroup = promises[ this.defaults.ajax.url ],
                                d = promiseGroup && promiseGroup[ type + 'Token' ];
  
                        if ( !d ) {
-                               apiPromise = this.get( { action: 'tokens', type: type } );
+                               apiPromise = this.get( { action: 'tokens', type: type, assert: assert } );
  
                                d = apiPromise
                                        .then( function ( data ) {